home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / New System Software Extensions / QuickDraw™ 3D 1.0 / Development / Interfaces / QD3DTransform.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-06-02  |  9.3 KB  |  313 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        QD3DTransform.h                                             **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **     Purpose:     Transform routines                                          **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **                                                                          **
  10.  **     Copyright (C) 1991-1995 Apple Computer, Inc. All rights reserved.     **    
  11.  **                                                                          **
  12.  **                                                                          **
  13.  *****************************************************************************/
  14. #ifndef QD3DTransform_h
  15. #define QD3DTransform_h
  16.  
  17. #ifndef QD3D_h
  18. #include "QD3D.h"
  19. #endif  /*  QD3D_h  */
  20.  
  21. #if PRAGMA_ONCE
  22.     #pragma once
  23. #endif
  24.  
  25. #ifdef __cplusplus
  26. extern "C" {
  27. #endif    /* __cplusplus */
  28.  
  29. /******************************************************************************
  30.  **                                                                             **
  31.  **                            Transform Routines                                 **
  32.  **                                                                             **
  33.  *****************************************************************************/
  34.  
  35. QD3D_EXPORT TQ3ObjectType Q3Transform_GetType(
  36.     TQ3TransformObject    transform);
  37.  
  38. QD3D_EXPORT TQ3Matrix4x4 *Q3Transform_GetMatrix(
  39.     TQ3TransformObject    trasform,
  40.     TQ3Matrix4x4        *matrix);
  41.  
  42. QD3D_EXPORT TQ3Status Q3Transform_Submit(
  43.     TQ3TransformObject    transform, 
  44.     TQ3ViewObject        view);
  45.  
  46.  
  47. /******************************************************************************
  48.  **                                                                             **
  49.  **                            MatrixTransform Routines                         **
  50.  **                                                                             **
  51.  *****************************************************************************/
  52.  
  53. QD3D_EXPORT TQ3TransformObject Q3MatrixTransform_New(
  54.     const TQ3Matrix4x4     *matrix);
  55.  
  56. QD3D_EXPORT TQ3Status Q3MatrixTransform_Submit(
  57.     const TQ3Matrix4x4     *matrix,
  58.     TQ3ViewObject        view);
  59.  
  60. QD3D_EXPORT TQ3Status Q3MatrixTransform_Set(
  61.     TQ3TransformObject    transform, 
  62.     const TQ3Matrix4x4      *matrix);
  63.  
  64. QD3D_EXPORT TQ3Status Q3MatrixTransform_Get(
  65.     TQ3TransformObject    transform,
  66.     TQ3Matrix4x4        *matrix);
  67.  
  68.  
  69. /******************************************************************************
  70.  **                                                                             **
  71.  **                            RotateTransform Data                             **
  72.  **                                                                             **
  73.  *****************************************************************************/
  74.  
  75. typedef struct TQ3RotateTransformData {
  76.     TQ3Axis        axis;
  77.     float        radians;
  78. } TQ3RotateTransformData;
  79.  
  80.  
  81. /******************************************************************************
  82.  **                                                                             **
  83.  **                            RotateTransform Routines                         **
  84.  **                                                                             **
  85.  *****************************************************************************/
  86.  
  87. QD3D_EXPORT TQ3TransformObject Q3RotateTransform_New(
  88.     const TQ3RotateTransformData    *data);
  89.  
  90.  
  91. QD3D_EXPORT TQ3Status Q3RotateTransform_Submit(
  92.     const TQ3RotateTransformData    *data,
  93.     TQ3ViewObject                    view);
  94.  
  95. QD3D_EXPORT TQ3Status Q3RotateTransform_SetData(
  96.     TQ3TransformObject                transform,
  97.     const TQ3RotateTransformData    *data);
  98.  
  99. QD3D_EXPORT TQ3Status Q3RotateTransform_GetData(
  100.     TQ3TransformObject                transform,
  101.     TQ3RotateTransformData            *data);
  102.     
  103. QD3D_EXPORT TQ3Status Q3RotateTransform_SetAxis(
  104.     TQ3TransformObject                transform,
  105.     TQ3Axis                            axis);
  106.  
  107. QD3D_EXPORT TQ3Status Q3RotateTransform_SetAngle(
  108.     TQ3TransformObject                transform,
  109.     float                            radians);
  110.  
  111. QD3D_EXPORT TQ3Status Q3RotateTransform_GetAxis(
  112.     TQ3TransformObject                 renderable, 
  113.     TQ3Axis                         *axis);
  114.  
  115. QD3D_EXPORT TQ3Status Q3RotateTransform_GetAngle(
  116.     TQ3TransformObject                 transform, 
  117.     float                             *radians);
  118.  
  119.  
  120. /******************************************************************************
  121.  **                                                                             **
  122.  **                    RotateAboutPointTransform Data                             **
  123.  **                                                                             **
  124.  *****************************************************************************/
  125.  
  126. typedef struct TQ3RotateAboutPointTransformData {
  127.     TQ3Axis            axis;
  128.     float            radians;
  129.     TQ3Point3D        about;
  130. } TQ3RotateAboutPointTransformData;
  131.  
  132.  
  133. /******************************************************************************
  134.  **                                                                             **
  135.  **                    RotateAboutPointTransform Routines                         **
  136.  **                                                                             **
  137.  *****************************************************************************/
  138.  
  139. QD3D_EXPORT TQ3TransformObject Q3RotateAboutPointTransform_New(
  140.     const TQ3RotateAboutPointTransformData    *data);
  141.  
  142. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_Submit(
  143.     const TQ3RotateAboutPointTransformData    *data,
  144.     TQ3ViewObject                            view);
  145.  
  146. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_SetData(
  147.     TQ3TransformObject                        transform,
  148.     const TQ3RotateAboutPointTransformData    *data);
  149.  
  150. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_GetData(
  151.     TQ3TransformObject                        transform,
  152.     TQ3RotateAboutPointTransformData        *data);
  153.  
  154. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_SetAxis(
  155.     TQ3TransformObject                        transform,
  156.     TQ3Axis                                    axis);
  157.  
  158. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_GetAxis(
  159.     TQ3TransformObject                        transform,
  160.     TQ3Axis                                    *axis);
  161.  
  162.  
  163. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_SetAngle(
  164.     TQ3TransformObject                        transform,
  165.     float                                    radians);
  166.  
  167. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_GetAngle(
  168.     TQ3TransformObject                        transform,
  169.     float                                    *radians);
  170.  
  171.  
  172. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_SetAboutPoint(
  173.     TQ3TransformObject                        transform,
  174.     const TQ3Point3D                        *about);
  175.  
  176. QD3D_EXPORT TQ3Status Q3RotateAboutPointTransform_GetAboutPoint(
  177.     TQ3TransformObject                        transform,
  178.     TQ3Point3D                                *about);
  179.  
  180.  
  181. /******************************************************************************
  182.  **                                                                             **
  183.  **                    RotateAboutAxisTransform Data                             **
  184.  **                                                                             **
  185.  *****************************************************************************/
  186.  
  187. typedef struct TQ3RotateAboutAxisTransformData {
  188.     TQ3Point3D            origin;
  189.     TQ3Vector3D            orientation;
  190.     float                radians;
  191. } TQ3RotateAboutAxisTransformData;
  192.  
  193.  
  194. /******************************************************************************
  195.  **                                                                             **
  196.  **                    RotateAboutAxisTransform Routines                         **
  197.  **                                                                             **
  198.  *****************************************************************************/
  199.  
  200. QD3D_EXPORT TQ3TransformObject Q3RotateAboutAxisTransform_New(
  201.     const TQ3RotateAboutAxisTransformData    *data);
  202.  
  203. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_Submit(
  204.     const TQ3RotateAboutAxisTransformData    *data,
  205.     TQ3ViewObject                            view);
  206.  
  207. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_SetData(
  208.     TQ3TransformObject                        transform,
  209.     const TQ3RotateAboutAxisTransformData    *data);
  210.  
  211. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_GetData(
  212.     TQ3TransformObject                        transform,
  213.     TQ3RotateAboutAxisTransformData            *data);
  214.  
  215.  
  216. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_SetOrientation(
  217.     TQ3TransformObject                        transform,
  218.     const TQ3Vector3D                        *axis);
  219.  
  220. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_GetOrientation(
  221.     TQ3TransformObject                        transform,
  222.     TQ3Vector3D                                *axis);
  223.  
  224.  
  225. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_SetAngle(
  226.     TQ3TransformObject                        transform,
  227.     float                                    radians);
  228.  
  229. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_GetAngle(
  230.     TQ3TransformObject                        transform,
  231.     float                                    *radians);
  232.  
  233.  
  234. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_SetOrigin(
  235.     TQ3TransformObject                        transform,
  236.     const TQ3Point3D                            *origin);
  237.  
  238. QD3D_EXPORT TQ3Status Q3RotateAboutAxisTransform_GetOrigin(
  239.     TQ3TransformObject                        transform,
  240.     TQ3Point3D                                *origin);
  241.  
  242.  
  243. /******************************************************************************
  244.  **                                                                             **
  245.  **                            ScaleTransform Routines                             **
  246.  **                                                                             **
  247.  *****************************************************************************/
  248.  
  249. QD3D_EXPORT TQ3TransformObject Q3ScaleTransform_New(
  250.     const TQ3Vector3D        *scale);
  251.  
  252. QD3D_EXPORT TQ3Status Q3ScaleTransform_Submit(
  253.     const TQ3Vector3D        *scale,
  254.     TQ3ViewObject            view);
  255.         
  256. QD3D_EXPORT TQ3Status Q3ScaleTransform_Set(
  257.     TQ3TransformObject        transform,
  258.     const TQ3Vector3D        *scale);
  259.  
  260. QD3D_EXPORT TQ3Status Q3ScaleTransform_Get(
  261.     TQ3TransformObject        transform,
  262.     TQ3Vector3D                *scale);
  263.  
  264.  
  265. /******************************************************************************
  266.  **                                                                             **
  267.  **                            TranslateTransform Routines                         **
  268.  **                                                                             **
  269.  *****************************************************************************/
  270.  
  271. QD3D_EXPORT TQ3TransformObject Q3TranslateTransform_New(
  272.     const TQ3Vector3D        *translate);
  273.  
  274. QD3D_EXPORT TQ3Status Q3TranslateTransform_Submit(
  275.     const TQ3Vector3D        *translate,
  276.     TQ3ViewObject            view);
  277.  
  278. QD3D_EXPORT TQ3Status Q3TranslateTransform_Set(
  279.     TQ3TransformObject        transform,
  280.     const TQ3Vector3D        *translate);
  281.  
  282. QD3D_EXPORT TQ3Status Q3TranslateTransform_Get(
  283.     TQ3TransformObject        transform,
  284.     TQ3Vector3D                *translate);
  285.  
  286. /******************************************************************************
  287.  **                                                                             **
  288.  **                            QuaternionTransform Routines                     **
  289.  **                                                                             **
  290.  *****************************************************************************/
  291.  
  292. QD3D_EXPORT TQ3TransformObject Q3QuaternionTransform_New(
  293.     const TQ3Quaternion        *quaternion);
  294.  
  295. QD3D_EXPORT TQ3Status Q3QuaternionTransform_Submit(
  296.     const TQ3Quaternion        *quaternion,
  297.     TQ3ViewObject            view);
  298.  
  299. QD3D_EXPORT TQ3Status Q3QuaternionTransform_Set(
  300.     TQ3TransformObject        transform, 
  301.     const TQ3Quaternion     *quaternion);
  302.  
  303. QD3D_EXPORT TQ3Status Q3QuaternionTransform_Get(
  304.     TQ3TransformObject        transform,
  305.     TQ3Quaternion            *quaternion);
  306.  
  307.  
  308. #ifdef __cplusplus
  309. }
  310. #endif    /* __cplusplus */
  311.  
  312. #endif  /*  QD3DTransform_h  */
  313.